import cn.org.rapid_framework.generator.GeneratorFacade;
import cn.org.rapid_framework.generator.GeneratorProperties;

/**
 * 运行main()自动生成 dao、service、model、mapper.xml
 * 
 * @version : Ver 1.0
 * @author : <a href="mailto:hubo@95190.com">hubo</a>
 * @date : 2015-5-28 下午10:35:33
 */
public class AutoGeneratorMain {

	private final static GeneratorFacade g = new GeneratorFacade();

	/**
	 * 生成数组中所有表名对应的
	 * 
	 * @param tableNames
	 *            表名数组
	 * @throws Exception
	 */
	public static void generateByTable(String... tableNames) throws Exception {
		if (null != tableNames && tableNames.length > 0) {
			for (String tbname : tableNames) {
				g.generateByTable(tbname, "template");
			}
		}
	}

/*	<bean id="dataSource"  class="org.apache.commons.dbcp.BasicDataSource"  destroy-method="close">          
    <property name="driverClassName" value="${jdbc.driverClassName}" />         
    <property name="url" value="${jdbc.url}" />         
    <property name="username" value="${jdbc.username}" />         
    <property name="password" value="${jdbc.password}" />      
     <property name="testOnBorrow" value="false" />        
       <property name="testWhileIdle" value="true" />     
         <!-- 连接池启动时的初始值 -->  
  <property name="initialSize" value="10" />  
  <!-- 连接池的最大值 -->  
  <property name="maxActive" value="100" />  
  <!-- 最大空闲值.当经过一个高峰时间后，连接池可以慢慢将已经用不到的连接慢慢释放一部分，一直减少到maxIdle为止 -->  
  <property name="maxIdle" value="50" />  
  <!-- 最小空闲值.当空闲的连接数少于阀值时，连接池就会预申请去一些连接，以免洪峰来时来不及申请 -->  
  <property name="minIdle" value="10" />  
  <!--#给出一条简单的sql语句进行验证-->  
  <property name="validationQuery" value="select getdate()" />  
  <!--#在取出连接时进行有效验证-->  
  <property name="removeAbandonedTimeout" value="120" />  
  <property name="removeAbandoned" value="true" />  
  <!-- #运行判断连接超时任务的时间间隔，单位为毫秒，默认为-1，即不执行任务。 -->  
  <property name="timeBetweenEvictionRunsMillis" value="3600000" />  
  <!-- #连接的超时时间，默认为半小时。 -->  
  <property name="minEvictableIdleTimeMillis" value="3600000" />    
</bean>   */
	
	
	public static void main(String[] args) throws Exception {
		
//		sql server下生成所有表有bug,用下面sql查询出所有表，copy到下面数据中批量生成
//		SELECT STUFF((select ',"' + name +'"' from sysobjects where xtype='u' for xml path('')),1,1,'')
		
		// 1.生成数组中所有表名对应的
		String[] tableNames = new String[] {"mgt_user"};
		generateByTable(tableNames);

		// 打开文件夹
		Runtime.getRuntime().exec("cmd.exe /c start "+ GeneratorProperties.getRequiredProperty("outRoot"));
	}
}
